package com.admin.education.services.Interfaces;

import com.admin.education.common.exceptions.ResourceNotFoundException;
import com.admin.education.dataTransferObject.PageRequest;
import com.admin.education.dataTransferObject.PageResponse;
import com.admin.education.dataTransferObject.ServicesExcuteResult;
import com.admin.education.dataTransferObject.grades.GradesTransfer;
import com.admin.education.dataTransferObject.grades.Request.CreateGradeRequest;
import com.admin.education.dataTransferObject.grades.Request.UpdateGradeRequest;

import javax.validation.Valid;
import java.util.List;

public interface IGradesService {
    ServicesExcuteResult<List<GradesTransfer>> queryGrades();
    ServicesExcuteResult createGrades(@Valid CreateGradeRequest createGradeRequest);
    ServicesExcuteResult updateGrades(long id, @Valid UpdateGradeRequest updateGradeRequest) throws ResourceNotFoundException;
    ServicesExcuteResult deleteGrades(long id) throws ResourceNotFoundException;
    ServicesExcuteResult<PageResponse<GradesTransfer>> queryGrades(@Valid PageRequest pageRequest) throws ResourceNotFoundException;
    ServicesExcuteResult<GradesTransfer> queryGradesById(long id) throws ResourceNotFoundException;
}
